package com.ict.web.mapper;





import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ict.web.domain.ExtractExpert;
import com.ict.web.domain.ReviewTask;
import com.ict.web.dto.QueryReviewTaskExpertDto;
import com.ict.web.dto.QueryReviewTaskThirdDto;
import com.ict.web.dto.ReviewTaskDto;
import com.ict.web.vo.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 评审任务Mapper接口
 * 
 * @author ruoyi
 * @date 2022-02-16
 */
@Mapper
public interface ReviewTaskMapper extends BaseMapper<ReviewTask>
{
    /**
     * 专家评审任务详情
     *
     * @param reviewTaskId 评审任务主键
     * @return 评审任务
     */
    public ReviewTask selectByExpertReviewTaskId(@Param("reviewTaskId") Long reviewTaskId,@Param("expertId") Long expertId);

    /**
     * 三方评审任务详情
     * @param reviewTaskId
     * @return
     */
    public ReviewTaskThirdDetailVo selectThirdById(Long reviewTaskId);

    /**
     * 查询专家评审任务列表
     * 
     * @param queryExpert 评审任务
     * @return 评审任务集合
     */
    public List<ReviewTaskExpertListVo> selectExpertList1(@Param("expertIds")Long[] expertIds,@Param("param") QueryReviewTaskExpertDto queryExpert);

    /**
     * 查询第三方评审任务列表
     * @param queryThird
     * @param mark 标记（0：评审任务列表  1：专家抽取管理列表）
     * @return
     */
    public List<ReviewTaskThirdListVo> selectThirdList(@Param("param")QueryReviewTaskThirdDto queryThird
                                                        ,@Param("mark")String mark);

    /**
     * 查看评审任务详情
     *
     * @param reviewTaskId 查看评审任务详情
     * @return 评审任务
     */

    public ReviewTaskDetailVo reviewTaskDetailById(Long reviewTaskId);
    /**
     * 抽取管理查询评审任务
     *
     * @param reviewTaskId 抽取管理查询评审任务
     * @return 评审任务
     */

    public ReviewTaskDetailVo reviewTaskDetail(Long reviewTaskId);
    /**
     * 大数据局查询评审任务列表
     *
     * @param dto 评审任务
     * @return 评审任务
     */

    public List<ReviewTaskListVo> selectReviewTaskList(ReviewTaskDto dto);


    /**
     * 查看评审任务某个抽取专家信息
     *
     * @param reviewTaskId 查看评审任务id
     *@param expertId 专家id
     * @return 评审任务
     */

    public ExtractExpert extractExpertByReviewTaskId(@Param("reviewTaskId") Long reviewTaskId, @Param("expertId")Long expertId);

    /**
     * 专家处理操作后的详情信息
     * @param reviewTaskId
     * @param expertId
     * @return
     */
    public ExpertIsReceiveReviewTaskDetailVo selectAcceptDetail(@Param("reviewTaskId") Long reviewTaskId,@Param("expertId") Long expertId);
    /**
     * 评审任务专家抽取表list
     * @param reviewTaskId
     * @return
     */
    public List<ExtractExpert> getExtractExpertList(Long reviewTaskId);
    /**
     * 专家抽取表信息（评审任务信息和抽取表总分字段）
     *@param expertId 专家id
     * @return 评审任务
     */

    public List<ExpertMessageVo> expertMessage(Long expertId);
}
